//
// Created by 紫霄 on 2020/4/15.
//

#ifndef LEETCODE_190_H
#define LEETCODE_190_H
#include <cstdint>
class Solution {
public:
  uint32_t reverseBits(uint32_t n) {
    //    uint32_t m[32] = {0};
    //    m[0] = 1;
    //    for (int i = 1; i < 32; ++i) {
    //      m[i] = m[i - 1] * 2;
    //    }
    //    int a[32] = {0};
    //    int cnt = 0;
    //    while (n != 0) {
    //      int m = n % 2;
    //      a[cnt] = m;
    //      ++cnt;
    //      n = n / 2;
    //    }
    //    int ans = 0;
    //    for (int i = 0; i < 32; ++i) {
    //      ans += a[i] * m[31 - i;
    //    }
    //    return ans;

    uint32_t ans = 0;
    int i = 32;
    while (i--) {
      ans = ans << 1;
      ans = ans + (n & 1); // 位与运算
      n = n >> 1;
    }
    return ans;
  }
};
#endif // LEETCODE_190_H
